package com.venutech.gongan.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.venutech.gongan.entity.DevicePermission;
import com.venutech.gongan.entity.DevicePermissionHistory;
import com.venutech.gongan.vo.DevicePermissionVO;

import java.util.List;

/**
 * 设备权限服务
 * 1. 移动端申请
 * 2. 后台进行审批
 */
public interface DevicePermissionService {

    int insert(DevicePermission record);


    int insertSelective(DevicePermission record);


    /**
     * 添加设备权限
     * @param deviceId
     * @param userId
     * @param createBy
     * @return
     */
    int addDevicePermission(int deviceId, int userId, int createBy);

    /**
     * 删除设备权限
     * @param deviceId 设备id
     * @param userId 用户id
     * @param operatorId 操作者id
     */
    void removeDevicePermission(int deviceId, int userId, int operatorId);

    /**
     * 允许设备权限申请
     * @param deviceId 设备id
     * @param userId 用户id
     * @param operatorId 操作者id
     */
    void enableDevicePermissionApply(int deviceId, int userId, int operatorId);
    /**
     * 根据设备id查询
     * @param deviceId
     * @return
     */
    List<DevicePermission> findByDeviceId(int deviceId);

    /**
     * 保存设备权限, 删除之前所有的，然后新增
     * @param deviceId
     * @param userIds
     * @param createBy
     */
    void updateDevicePermission(int deviceId, List<Integer> userIds, int createBy);

    /**
     * 警务通提交申请
     * @param userId 用户id
     * @param deviceId 设备id
     */
    void requestDevicePermission(int userId, int deviceId);

    List<DevicePermissionHistory> findHistory(int deviceId, int userId);

    Page<DevicePermissionVO> findAll(int page, int size);
}
